/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package observertest;

import java.util.ArrayList;

/**
 *
 * @author Jonah
 */
public abstract class Actor {
    /*implementation comment*/
    ////<editor-fold defaultstate="collapsed" desc="Static Variables">
    //</editor-fold>
    
    ////<editor-fold desc="Instanced Variables">
    private GameListener gameListener;
    private int tileIndex, lifespan, needsToEat;

    public int getTileIndex() {
        return tileIndex;
    }

    public Tile getCurrentTile() {
        return currentTile;
    }

    public void setCurrentTile(Tile currentTile) {
        this.currentTile = currentTile;
    }
    private ArrayList neighbors, unsafeTiles, safeTiles = new ArrayList();
    private Tile currentTile;
    //</editor-fold>
        
    ////<editor-fold desc="Constructor">
    public Actor( int index  ,int life, int hunger, GameListener gamelistener){
       tileIndex = index;
       lifespan = life;
       needsToEat = hunger;
       gameListener = gamelistener;
    }
    //</editor-fold>
     
    ////<editor-fold defaultstate="collapsed" desc="Class Methods">
    abstract void move();
    abstract void checkIfDestroyed();
    abstract void updateLifespan();
    abstract void checkCurrentTile(int currentTileIndex);
    abstract public boolean checkAdjacentTile(int neighborTileIndex);
    static Tile getTile(Board board, int tile){
        return board.getTile(tile);
    }
    //public final ArrayList fireGetTileNeighbors(int tileIndex){

    //</editor-fold>
     
    ////<editor-fold defaultstate="collapsed" desc="Interface Override Methods">
    //</editor-fold>
}
